Argentina
Mapa del sitio  | Home | Worldwide
Microsoft
Buscar en Microsoft.com:
Ayuda y Soporte Técnico  
| Seleccione un producto | Búsqueda Avanzada | Grupos de noticias | Contáctenos

Cómo colocar un control DataList directamente en una celda en un DataGrid

AVISO: Gracias por utilizar el servicio de Traducción Automática. Este artículo ha sido traducido por un sistema informático sin ayuda humana (Machine Translation). Microsoft ofrece estos artículos a los usuarios que no comprendan el inglés, exclusivamente, con el fin de que puedan entenderlos más fácilmente. Microsoft no se hace responsable de la calidad lingüística de las traducciones ni de la calidad técnica de los contenidos de los artículos así como tampoco de cualesquiera problemas, directos o indirectos, que pudieran surgir como consecuencia de su utilización por los lectores.
Id. de artículo : 235944
Última revisión : jueves, 01 de julio de 2004
Versión : 1.1

Resumen

En este artículo se explica cómo colocar un control independiente DataList en una celda secundaria asociado en un DataGrid. Siempre que el usuario presiona el botón DataGrid, el DataList se muestra y aparece que la celda relacionada tuvo un cuadro combinado.

Más información

1. Abra un proyecto nuevo EXE estándar de Microsoft Visual Basic. Se creará Form1 de manera predeterminada
2. Establezca una referencia a Microsoft ActiveX Data Objects.
3. En Form1, coloque los controles siguientes:
2 control de datos (adodc1 y adodc2) que ade
1 DataGrid (DataGrid1)
1 control DataList (DataList1)
4. Establezca las propiedades siguientes:
DataGrid1.DataSource = adodc1
DataList1.RowSource = adodc2
DataList1.ListField = CustomerID
DataList1.BoundColumn = CustomerID
5. Corte y pegue el código siguiente en la sección Declaraciones generales:
Option Explicit

Dim RowValue
Dim cn As New ADODB.Connection
Dim rsOrders As New ADODB.Recordset
Dim rsCustomers As New ADODB.Recordset

Private Sub DataList1_Click()
  DataGrid1.Text = DataList1.Text
  DataList1.Visible = False
End Sub

Private Sub DataList1_LostFocus()
  DataList1.Visible = False
End Sub

Private Sub DataGrid1_Scroll(Cancel As Integer)
  DataList1.Visible = False
End Sub

Private Sub Form_Load()
    cn.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _
            "Data Source=NWind.mdb;"
    With rsOrders
        .ActiveConnection = cn
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        .Open "Select * From Orders"
    End With
    Set Adodc1.Recordset = rsOrders
    With rsCustomers
        .ActiveConnection = cn
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockReadOnly
        .Open "Select CustomerID From Customers ORDER BY CustomerID"
    End With
    Set Adodc2.Recordset = rsCustomers
    DataList1.Visible = False
    DataGrid1.Columns(1).Button = True
End Sub

Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
   If ColIndex = 1 Then
      DataList1.Top = DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row) + DataGrid1.RowHeight
      DataList1.Left = DataGrid1.Left + DataGrid1.Columns(ColIndex).Left
      ' Width and Height properties can be set a design time
      ' The width of the list does not have to be the same as the width of the grid column
      DataList1.Width = DataGrid1.Columns("CustomerID").Width
      DataList1.Height = 1440
      DataList1.Visible = Not DataList1.Visible
      If DataList1.Visible Then
         DataList1.Text = DataGrid1.Text
         DataList1.ZOrder      ' make sure the list is on top of the grid
      End If
   End If
End Sub

Private Sub DataGrid1_Click()
   DataList1.Visible = False
End Sub

					
6. Ejecute el proyecto y observe que el DataGrid muestra un botón desplegable en la columna CustomerID. Cuando presiona el botón, el cuadro DataList aparece de la tabla Clientes con una lista de códigos CustomerID. Seleccione un CustomerID nuevo. Cuando realiza la selección, el valor CustomerID que seleccionó en el DataList actualiza el campo IdCliente en el DataGrid.

La información de este artículo se refiere a:
Microsoft ActiveX Data Objects 2.1 Service Pack 1
Microsoft ActiveX Data Objects 2.1 Service Pack 2
Microsoft ActiveX Data Objects 2.5
Microsoft ActiveX Data Objects 2.6
Microsoft ActiveX Data Objects 2.7
Microsoft Visual Basic 6.0 Professional Edition
Microsoft Visual Basic 6.0 Enterprise Edition

Volver al principio

Palabras clave: 
kbhowto kbdatabase KB235944 KbMtes kbmt
 

Buscar en

 
Búsqueda Avanzada

Seleccione idioma

 

Más soporte técnico

Herramientas


©2007 Microsoft Corporation. Todos los derechos reservados. Aviso legal |Marcas registradas |Privacidad